#pragma once

//alipay href
#define ALIPAY_HREF_DEV										"https://openapi.alipaydev.com/gateway.do"
#define ALIPAY_HREF											"https://openapi.alipay.com/gateway.do"

//alipay key name
#define ALIPAY_REQ_APP_ID									"app_id"
#define ALIPAY_REQ_BIZ_CONTENT								"biz_content"
#define ALIPAY_REQ_CHARSET									"charset"
#define ALIPAY_REQ_METHOD									"method"
#define ALIPAY_REQ_NOTIFY_URL								"notify_url"
#define ALIPAY_REQ_SIGN_TYPE								"sign_type"
#define ALIPAY_REQ_TIMESTAMP								"timestamp"
#define ALIPAY_REQ_VERSION									"version"
#define ALIPAY_REQ_SIGN										"sign"

#define ALIPAY_RESPS_TRSFR									"alipay_fund_trans_toaccount_transfer_response"
#define ALIPAY_RESPS_RFND									"alipay_trade_refund_response"
#define ALIPAY_RESPS_QUERY									"alipay_trade_query_response"
#define ALIPAY_RESPS_SIGN									"sign"
#define ALIPAY_RESPS_CODE									"code"
#define ALIPAY_RESPS_SUB_CODE								"sub_code"
#define ALIPAY_RESPS_MSG									"msg"
#define ALIPAY_RESPS_ORDER_ID								"order_id"
#define ALIPAY_RESPS_OUT_BIZ_NO								"out_biz_no"
#define ALIPAY_RESPS_PAY_DATE								"pay_date"
#define ALIPAY_RESPS_BUYER_LOGON_ID							"buyer_logon_id"
#define ALIPAY_RESPS_BUYER_USER_ID							"buyer_user_id"
#define ALIPAY_RESPS_FUND_CHANGE							"fund_change"
#define ALIPAY_RESPS_GMT_REFUND_PAY							"gmt_refund_pay"
#define ALIPAY_RESPS_OUT_TRADE_NO							"out_trade_no"
#define ALIPAY_RESPS_REFUND_FEE								"refund_fee"
#define ALIPAY_RESPS_SEND_BACK_FEE							"send_back_fee"
#define ALIPAY_RESPS_TRADE_NO								"trade_no"
#define ALIPAY_RESPS_TRADE_STATUS							"trade_status"
#define ALIPAY_RESPS_TOTAL_AMOUNT							"total_amount"

//alipay trade status
#define ALIPAY_TRADE_STATUS_SUCCESS							"TRADE_SUCCESS"
#define ALIPAY_TRADE_STATUS_CLOSED							"TRADE_CLOSED"
#define ALIPAY_TRADE_STATUS_FINISHED						"TRADE_FINISHED"
#define ALIPAY_TRADE_STATUS_WAIT_BUYER_PAY					"WAIT_BUYER_PAY"

//alipay notify key name
#define ALIPAY_NOTIFY_GMT_CREATE							"gmt_create";
#define ALIPAY_NOTIFY_CHARSET								"charset";
#define ALIPAY_NOTIFY_SELLER_EMAIL							"seller_email";
#define ALIPAY_NOTIFY_SUBJECT								"subject"
#define ALIPAY_NOTIFY_SIGN									"sign"
#define ALIPAY_NOTIFY_BODY									"body"
#define ALIPAY_NOTIFY_BUYER_ID								"buyer_id"
#define ALIPAY_NOTIFY_INVOICE_AMOUNT						"invoice_amount"
#define ALIPAY_NOTIFY_NOTIFY_ID								"notify_id"
#define ALIPAY_NOTIFY_FUND_BILL_LIST						"fund_bill_list"
#define ALIPAY_NOTIFY_NOTIFY_TYPE							"notify_type"
#define ALIPAY_NOTIFY_TRADE_STATUS							"trade_status"
#define ALIPAY_NOTIFY_RECEIPT_AMOUNT						"receipt_amount"
#define ALIPAY_NOTIFY_APP_ID								"app_id"
#define ALIPAY_NOTIFY_BUYER_PAY_AMOUNT						"buyer_pay_amount"
#define ALIPAY_NOTIFY_SIGN_TYPE								"sign_type"
#define ALIPAY_NOTIFY_SELLER_ID								"seller_id"
#define ALIPAY_NOTIFY_GMT_PAYMENT							"gmt_payment"
#define ALIPAY_NOTIFY_NOTIFY_TIME							"notify_time"
#define ALIPAY_NOTIFY_VERSION								"version"
#define ALIPAY_NOTIFY_OUT_TRADE_NO							"out_trade_no"
#define ALIPAY_NOTIFY_TOTAL_AMOUNT							"total_amount"
#define ALIPAY_NOTIFY_TRADE_NO								"trade_no"
#define ALIPAY_NOTIFY_AUTH_APP_ID							"auth_app_id"
#define ALIPAY_NOTIFY_BUYER_LOGON_ID						"buyer_logon_id"
#define ALIPAY_NOTIFY_POINT_AMOUNT							"point_amount"
#define ALIPAY_NOTIFY_PASSBACK_PARAMS						"passback_params"


//wechat href
#define WECHAT_HREF_SMALL_PROGRAM_LOGIN						"https://api.weixin.qq.com/sns/jscode2session"
#define WECHAT_HREF_PREPAY									"https://api.mch.weixin.qq.com/pay/unifiedorder"
#define WECHAT_HREF_REFUND									"https://api.mch.weixin.qq.com/secapi/pay/refund"
#define WECHAT_HREF_QUERY									"https://api.mch.weixin.qq.com/pay/orderquery"

//wechat key name
#define WECHAT_XML_ROOT										"xml"

#define WECHAT_REQ_APP_ID									"appid"
#define WECHAT_REQ_SECRET									"secret"
#define WECHAT_REQ_OPEN_ID									"openid"
#define WECHAT_REQ_JS_CODE									"js_code"
#define WECHAT_REQ_GRANT_TYPE								"grant_type"
#define WECHAT_REQ_MCH_ID									"mch_id"
#define WECHAT_REQ_NONCE_STR								"nonce_str"
#define WECHAT_REQ_SIGN										"sign"
#define WECHAT_REQ_BODY										"body"
#define WECHAT_REQ_OUT_TRADE_NO								"out_trade_no"
#define WECHAT_REQ_TOTAL_FEE								"total_fee"
#define WECHAT_REQ_SPBILL_CREATE_IP							"spbill_create_ip"
#define WECHAT_REQ_TIME_EXPIRE								"time_expire"
#define WECHAT_REQ_NOTIFY_URL								"notify_url"
#define WECHAT_REQ_TRADE_TYPE								"trade_type"
#define WECHAT_REQ_ATTACH									"attach"
#define WECHAT_REQ_MCH_KEY									"key"
#define WECHAT_REQ_REFUND_FEE								"refund_fee"
#define WECHAT_REQ_TRANSACTION_ID							"transaction_id"
#define WECHAT_REQ_OUT_REFUND_NO							"out_refund_no"

#define WECHAT_RESPS_SESSION_KEY							"session_key"
#define WECHAT_RESPS_RETURN_CODE							"return_code"
#define WECHAT_RESPS_RETURN_MSG								"return_msg"
#define WECHAT_RESPS_SIGN									"sign"
#define WECHAT_RESPS_RESULT_CODE							"result_code"
#define WECHAT_RESPS_RETURN_MSG								"return_msg"
#define WECHAT_RESPS_PREPAY_ID								"prepay_id"
#define WECHAT_RESPS_TRADE_TYPE								"trade_type"
#define WECHAT_RESPS_SUB_MCH_ID								"sub_mch_id"
#define WECHAT_RESPS_TRANSACTION_ID							"transaction_id"
#define WECHAT_RESPS_OUT_TRADE_NO							"out_trade_no"
#define WECHAT_RESPS_OUT_REFUND_NO							"out_refund_no"
#define WECHAT_RESPS_REFUND_ID								"refund_id"
#define WECHAT_RESPS_REFUND_FEE								"refund_fee"
#define WECHAT_RESPS_TRADE_STATE							"trade_state"
#define WECHAT_RESPS_ERR_CODE								"err_code"
#define WECHAT_RESPS_OPEN_ID								"openid"
#define WECHAT_RESPS_BANK_TYPE								"bank_type"
#define WECHAT_RESPS_TOTAL_FEE								"total_fee"
#define WECHAT_RESPS_CASH_FEE								"cash_fee"
#define WECHAT_RESPS_TIME_END								"time_end"
#define WECHAT_RESPS_TRADE_STATE_DESC						"trade_state_desc"

//wechat trade state
#define WECHAT_TRADE_STATE_SECCESS							"SUCCESS"
#define WECHAT_TRADE_STATE_REFUND							"REFUND"
#define WECHAT_TRADE_STATE_NOTPAY							"NOTPAY"
#define WECHAT_TRADE_STATE_CLOSED							"CLOSED"
#define WECHAT_TRADE_STATE_REVOKED							"REVOKED"
#define WECHAT_TRADE_STATE_USERPAYING						"USERPAYING"
#define WECHAT_TRADE_STATE_PAYERROR							"PAYERROR"

//wechat notify key name
#define WECHAT_NOTIFY_APP_ID								"appid"
#define WECHAT_NOTIFY_ATTACH								"attach"
#define WECHAT_NOTIFY_BANK_TYPE								"bank_type"
#define WECHAT_NOTIFY_CASH_FEE								"cash_fee"
#define WECHAT_NOTIFY_FEE_TYPE								"fee_type"
#define WECHAT_NOTIFY_IS_SUBSCRIBE							"is_subscribe"
#define WECHAT_NOTIFY_MCH_ID								"mch_id"
#define WECHAT_NOTIFY_NONCE_STR								"nonce_str"
#define WECHAT_NOTIFY_OPEN_ID								"openid"
#define WECHAT_NOTIFY_OUT_TRADE_NO							"out_trade_no"
#define WECHAT_NOTIFY_RESULT_CODE							"result_code"
#define WECHAT_NOTIFY_RETURN_CODE							"return_code"
#define WECHAT_NOTIFY_SIGN									"sign"
#define WECHAT_NOTIFY_TIME_END								"time_end"
#define WECHAT_NOTIFY_TOTAL_FEE								"total_fee"
#define WECHAT_NOTIFY_TRADE_TYPE							"trade_type"
#define WECHAT_NOTIFY_TRANSACTION_ID						"transaction_id"

//define CHECK_INPUT_STRING_TYPE if you want to check the type of input string 
#define CHECK_INPUT_STRING_TYPE